package org.rulix.ogame.player.core;
/*
 * ====================================================================
 *
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */
 
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
 
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
 
/**
 * A example that demonstrates how HttpClient APIs can be used to perform
 * form-based logon.
 */
public class ClientFormLogin {
 
    public static void main(String[] args) throws Exception {
 
        DefaultHttpClient httpclient = new DefaultHttpClient();
        try {
            HttpGet httpget = new HttpGet("http://ogame.com.es/?param1=value1s");

            HttpUriRequest hy ;
            
            
//
//            HttpResponse response = httpclient.execute(httpget);
//            HttpEntity entity = response.getEntity();
//
//            System.out.println("Response: ");
//            InputStream is = entity.getContent();
//            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
//            String line = null;
//           
//            while ( null != (line = reader.readLine())) {
//                System.out.println(line);
//            }
//            
//           
//                System.out.println("Login form get: " + response.getStatusLine());
//            EntityUtils.consume(entity);
//
//            System.out.println("Initial set of cookies:");
//            List<Cookie> cookies = httpclient.getCookieStore().getCookies();
//            if (cookies.isEmpty()) {
//                System.out.println("None");
//            } else {
//                for (int i = 0; i < cookies.size(); i++) {
//                    System.out.println("- " + cookies.get(i).toString());
//                }
//            }
 
            String uniServer = "uni58.ogame.com.es";
            HttpPost httpost = new HttpPost("http://"+uniServer+"/game/reg/login2.php");
           
            List <NameValuePair> nvps = new ArrayList <NameValuePair>();
            nvps.add(new BasicNameValuePair("uni_id", ""));
            nvps.add(new BasicNameValuePair("kid", ""));
            nvps.add(new BasicNameValuePair("is_utf8", "0"));
            nvps.add(new BasicNameValuePair("uni_url", "uni58.ogame.com.es"));
            nvps.add(new BasicNameValuePair("login", "rulix"));
            nvps.add(new BasicNameValuePair("pass", "11223344"));
 
            httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
 
            HttpResponse response = httpclient.execute(httpost);
            HttpEntity entity = response.getEntity();
 
            System.out.println("Login form get: " + response.getStatusLine());
            EntityUtils.consume(entity);
 
            System.out.println("Post logon cookies:");
            List<Cookie> cookies = httpclient.getCookieStore().getCookies();
            if (cookies.isEmpty()) {
                System.out.println("None");
            } else {
                for (int i = 0; i < cookies.size(); i++) {
                    System.out.println("- " + cookies.get(i).toString());
                }
            }
           
            Header location = response.getFirstHeader("Location");
            System.out.println("Location: " + location.getValue());
 
            httpget = new HttpGet("http://"+uniServer+location.getValue());
            HttpParams params = httpget.getParams();
           
            System.out.println("session = " + params.getParameter("session"));
            response = httpclient.execute(httpget);
            entity = response.getEntity();
 
          System.out.println("Response: ");
          InputStream is = entity.getContent();
          BufferedReader reader = new BufferedReader(new InputStreamReader(is));
          String line = null;
         
          while ( null != (line = reader.readLine())) {
            System.out.println(line);
          }
 
          EntityUtils.consume(entity);
        } finally {
            // When HttpClient instance is no longer needed,
            // shut down the connection manager to ensure
            // immediate deallocation of all system resources
            httpclient.getConnectionManager().shutdown();
        }
    }
}